/*
* Copyright 2016 SonicWALL Inc.
* All rights reserved.
*
* 1. This source code must strictly not be redistributed or copied or stored in
* un-authorized location.
*
* 2. Access to the source code must be limited to the licensee and
* members approved by SonicWALL Inc..
*
* 3. All derivatives or modifications must include this copyright notice.
*
* 4. SonicWALL Inc. name may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* 5. Possessing or any other form of access to this source code without
* valid development license and/or written permission from SonicWALL Inc. is
* prohibited.
*
* 6. Software is confidential and protected. Title to Software and all
* associated intellectual property rights is retained by SonicWALL Inc..
* Unless enforcement is prohibited by applicable law, you may not adopt,
* decompile, or reverse engineer this Software without written permission
* from SonicWALL Inc.. No right, title or interest in or to any trademark,
* service mark, logo or trade name of SonicWALL Inc. is granted under
* this Agreement.
*
* This Software,including technical data,may be subject to U.S. export control
* laws, including the U.S. Export Administration Act and its associated
* regulations, and may be subject to export or import regulations in other
* countries.You warrant that You will comply strictly in all respects with all
* such regulations and acknowledge that you have the responsibility to obtain
* licenses to export, re-export or import the Software.
*
* LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW,
* IN NO EVENT WILL SONICWALL INC. BE LIABLE FOR ANY LOST REVENUE, PROFIT
* OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR
* PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY,
* ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE,
* EVEN IF SONICWALL INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no
* event will SonicWALL Inc.'s liability to you, whether in contract, tort (including
* negligence), or otherwise, exceed the amount paid by you for Software
* under this Agreement. The foregoing limitations will apply even if the
* above stated warranty fails of its essential purpose. Some states do
* not allow the exclusion of incidental or consequential damages, so some
* of the terms above may not be applicable to you.
*
*/
var sw_httprp_apache_flg=0;var sw_httprp_apache_path_normal="go/";var sw_httprp_apache_path_citrix="cx/";var sw_httprp_cgi_path_normal="nph-httprp/";var sw_httprp_cgi_path_citrix="nph-citrix/";var sw_httprp_cgi_path=sw_httprp_cgi_path_normal;var sw_httprp_oldWinOpen=window.open;var sw_httprp_oldWinNavigate=window.navigate;var sw_httprp_http_head="http://";var sw_httprp_https_head="https://";var sw_httprp_http_head_encode="http%3a%2f%2f";var sw_httprp_https_head_encode="https%3a%2f%2f";window.open=function(a1,a2,a3,a4){switch(arguments.length){case 0:return sw_httprp_oldWinOpen();break;case 1:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1));break;case 2:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1),a2);break;case 3:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1),a2,a3);break;case 4:default:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1),a2,a3,a4);}}
if(window.navigate)
{window.navigate=function(a1){return sw_httprp_oldWinNavigate(sw_httprp_rewrite_url(a1));}}
if(location.href.indexOf(sw_httprp_apache_path_citrix)!=-1)
{sw_httprp_cgi_path=sw_httprp_apache_path_citrix;sw_httprp_apache_flg=1;}
else if(location.href.indexOf("/"+sw_httprp_apache_path_normal)!=-1)
{sw_httprp_cgi_path=sw_httprp_apache_path_normal;sw_httprp_apache_flg=1;}
else
{sw_httprp_cgi_path=undefined;sw_httprp_apache_flg=1;}
var sw_httprp_orig_doc=(location.href).substring((location.href).lastIndexOf('/')+1);var sw_httprp_orig_host=location.host;var sw_httprp_orig_proto=(location.protocol).substring(0,(location.protocol).length-1);var sw_httprp_orig_proto_prefix=location.protocol;var sw_httprp_orig_path=undefined;var sw_httprp_orig_pathname=location.pathname;var sw_httprp_orig_href=location.href;var sw_httprp_location_href=location.href;var sw_httprp_host_url=undefined;var sw_httprp_base_ref=undefined;var sw_httprp_base=undefined;var sw_httprp_owa_flg=((location.href).search(/\/(exchange|exchweb|public)/)!=-1);var sw_httprp_lotuswa_flg=((location.href).search(/\/(iNotes|mail)/)!=-1);var sw_httprp_is_portal_flg=0;var sw_documentDotWriteBuffer="";var sw_httprp_basictag_regex_obj=new RegExp('(<(\\S+\\s+)(.+?)(/?>)|(\\S+)>)(?!(.*<[^>]+$))','i');var sw_httprp_request_regex="^https://(.*?/"+(!sw_httprp_apache_flg?".*?/":"")+sw_httprp_cgi_path+")(?:((https?)(?:\\:|%3a)?/{1,2}([^/]+))?(.*))?$";var sw_httprp_tag_regex="^<(\\S+\\s+)(.+?)(/?>)$";var sw_httprp_tag_regex_obj=new RegExp(sw_httprp_tag_regex);var sw_httprp_tag_attr_regex="(attr=(?:\".\"|'.'|[^\"'])\\s*)|([^\\s>]+?)(?:(\\s*=\\s*)((?:[^\\s'\"]+)|(')(?:[^\\\\']*(?:\\\\.)?)*'?|(\")(?:[^\\\\\"]*(?:\\\\.)?)*\"?)|$|(\\s+))(\\s*)";var sw_httprp_tag_attr_regex_obj=new RegExp(sw_httprp_tag_attr_regex);var sw_httprp_body_regex="(?:)+|<([^<>\"']|<%.*?%>|"+"\"(?:[^\\\"]|\\.)*?\"\s*\"?|'(?:[^>])*)*?>";var sw_httprp_body_regex_obj=new RegExp(sw_httprp_body_regex,"i");var sw_httprp_base_regex="^(https?://(?:.*?:.*?@)?[^/]+)";var sw_httprp_path_regex="((/[^\?]*)*(\\\?.*)*)";var sw_httprp_abs_url_regex_obj=new RegExp(sw_httprp_base_regex+sw_httprp_path_regex,"i");var sw_httprp_cgi_path_regex_obj=new RegExp(sw_httprp_cgi_path);var sw_httprp_base_ref_regex_obj=undefined;var sw_httprp_proto_regex_obj=new RegExp("^(http|//)");var sw_httprp_proto_http_regex_obj=new RegExp("^(http://)");var sw_httprp_proto_https_regex_obj=new RegExp("^https://");var sw_httprp_styleBgImage_regex_obj=new RegExp("url\\([^\\)]*\\)");var sw_httprp_signed_cookie_regex_obj=new RegExp('__proxy_ssl_vpn__COOKIE__([-:\\[\\]./0-9a-zA-Z]+)(__([0-9]{1,5}))?__','i');var SW_HTTPRP_LOG_LEVEL_DEBUG=7;var SW_HTTPRP_LOG_LEVEL_INFO=6;var SW_HTTPRP_LOG_LEVEL_ERR=3;var HTTPRP_TAGNAME_MATCH_INDEX=1;var HTTPRP_ATTRLIST_MATCH_INDEX=2;var HTTPRP_ENDTAG_MATCH_INDEX=3;var HTTPRP_ATTRSTR_MATCH_INDEX=0;var HTTPRP_ATTRNAME_MATCH_INDEX=2;var HTTPRP_EQUALS_MATCH_INDEX=3;var HTTPRP_ATTRVALUE_MATCH_INDEX=4;var HTTPRP_SQUOT_MATCH_INDEX=5;var HTTPRP_DQUOT_MATCH_INDEX=6;var HTTPRP_ATTRSPACE_MATCH_INDEX=7;var HTTPRP_BASE_MATCH_INDEX=1;var HTTPRP_ORIG_PROTO_MATCH_INDEX=3;var HTTPRP_ORIG_HOST_MATCH_INDEX=4;var HTTPRP_ORIG_PATH_MATCH_INDEX=5;var HTTP_PROTO_STR_LEN=new String("http://").length;var HTTPS_PROTO_STR_LEN=new String("https://").length;var sw_httprp_tag_attr_array=new Array("action","background","cite","classid","codebase","data","datasrc","deleteditems","folder","folderroot","for","href","longdesc","profile","src","usemap","value");var sw_httprp_js_event_handler_array=new Array("onblur","onchange","onclick","ondblclick","onfocus","onkeydown","onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onreset","onselect","onsubmit","onunload");var sw_httprp_log_debug=false;var sw_httprp_log_info=false;var sw_httprp_log_error=false;var sw_httprp_document_cookie;var sw_httprp_orig_document_url;try{sw_httprp_orig_document_url=document.URL;}catch(e){sw_httprp_orig_document_url=window.document.URL;}
if(sw_httprp_orig_document_url==location.href)
{sw_httprp_set_location_href((location.href).replace(/\?.*$/,""));sw_httprp_orig_document_url=sw_httprp_orig_href;}
else{sw_httprp_set_location_href(sw_httprp_orig_document_url.replace(/\?.*$/,""));sw_httprp_orig_document_url=sw_httprp_orig_href;sw_httprp_set_location_href((location.href).replace(/\?.*$/,""));}
sw_httprp_document_cookie=sw_httprp_get_unsigned_cookies(window.document.cookie);function sw_httprp_log(str,level)
{if(sw_httprp_log_debug&&level==SW_HTTPRP_LOG_LEVEL_DEBUG)
{document.writeln("Debug: "+str+"
");}
else if(sw_httprp_log_info&&level==SW_HTTPRP_LOG_LEVEL_INFO)
{document.writeln("Info: "+str+"
");}
else if(sw_httprp_log_error&&level==SW_HTTPRP_LOG_LEVEL_ERR)
{document.writeln("Error:"+str+"
");}}
function sw_httprp_rewrite_document(docStr)
{var saveStr=docStr;var httprpoutresp="null";var beg=0,end=0;var httprp_regex_matches=undefined;if(docStr==undefined||docStr==null||docStr.length<=0||typeof(docStr)!="string"){return docStr;}
if(!sw_httprp_body_regex_obj.test(docStr))
{var tagbegpos=docStr.indexOf('<');var tagendpos=docStr.indexOf('>');if(tagbegpos0)
{httprpoutresp=docStr.substring(0,tagbegpos)+
sw_httprp_rewrite_document(docStr.substring(tagbegpos,docStr.length));return httprpoutresp;}
else if(tagendpos0)
{httprpoutresp=sw_httprp_rewrite_attrlist_str(docStr.substring(0,tagendpos))+'>'+
sw_httprp_rewrite_document(docStr.substring(tagendpos+1,docStr.length));}
else if(tagbegpos==0||tagendpos==0)
{httprpoutresp=docStr.charAt(0)+
sw_httprp_rewrite_attrlist_str(docStr.substring(1,docStr.length));}
else
httprpoutresp=sw_httprp_rewrite_attrlist_str(docStr);return httprpoutresp;}
while((httprp_regex_matches=sw_httprp_body_regex_obj.exec(docStr))!=null)
{var httprpinresp=new String(saveStr);end=httprpinresp.indexOf(httprp_regex_matches[0],beg)+httprp_regex_matches[0].length;if(httprpoutresp=="null")
{httprpoutresp=httprpinresp.substring(beg,httprpinresp.indexOf(httprp_regex_matches[0],beg));}
else
{httprpoutresp+=httprpinresp.substring(beg,httprpinresp.indexOf(httprp_regex_matches[0],beg));}
if(httprpoutresp==undefined)
{httprpoutresp="";}
httprpoutresp+=sw_httprp_rewrite_html_tag(httprp_regex_matches[0]);beg=end;docStr=saveStr.substring(beg);}
if(docStr.length>0)
{httprpoutresp+=sw_httprp_rewrite_document(docStr);}
return httprpoutresp;}
var owa_cached_imgelem=undefined;var owa_cached_imgelem2=undefined;function sw_httprp_rewrite_attrlist_str(attrliststr)
{var beg=0;var tagprefix="0)
{if(httprpinresp.charAt(charIndex)!=' ')
break;else
{charIndex=charIndex-1;spacetrailer=1;continue;}}
if(httprpinresp.charAt(charIndex)=='>')NO_tagsuffix=1;if(httprpinresp.charAt(httprpinresp.length-1)!='>')
{if((spacetrailer==1)&&(NO_tagsuffix==1))
{tagsuffix='';}else
{tagsuffix=">";fakehttprpinresp+=tagsuffix;}}
else
tagsuffix='';fakehttprpoutresp=sw_httprp_rewrite_html_tag(fakehttprpinresp);httprpoutresp=fakehttprpoutresp.substring(tagprefix.length,fakehttprpoutresp.length-tagsuffix.length);if(spacetrailer)
httprpoutresp+=' ';return httprpoutresp;}
function sw_httprp_insert_rewrite_lib()
{function declareVar(name,defaultVal)
{var v=(name in window)?window[name]:defaultVal;if(typeof v==='string'&&v.length===0){v='""';}
return"var "+name+"="+v+";";}
var i,insertScript="",varObj,sw_vars=[{name:"csrfFlg",val:0},{name:"csrfToken",val:""},{name:"offloadRewrite",val:0},{name:"appServerIP",val:""},{name:"appServerIPv6",val:""},{name:"appHostname",val:""},{name:"appHostAlias",val:""},{name:"appServerPort",val:0},{name:"ubaEnabled",val:0},{name:"ubaAlias",val:""},{name:"ubaAddress",val:""},{name:"ubaPort",val:0}];insertScript="";insertScript+="\n";return insertScript;}
function sw_httprp_rewrite_html_tag(tagStr)
{var httprpinresp=sw_httprp_stripMetaChars(new String(tagStr));var httprpoutresp;var initHttprpRegexMultiline=RegExp.multiline;var trimTag=new String(sw_httprp_str_trim(httprpinresp));var i=0;var owa_cached_imgelem_flg=0;var owa_cached_imgelem_flg2=0;if(httprpinresp==null||trimTag.length==0)
{return httprpinresp;}
if((httprpinresp.search(//)!=-1))
{return httprpinresp;}
RegExp.multiline=true;if(!sw_httprp_tag_regex_obj.test(httprpinresp))
{RegExp.multiline=initHttprpRegexMultiline;return httprpinresp;}
if(sw_httprp_owa_flg==1)
{if(httprpinresp.search(/flg-empty.gif/)!=-1)
{owa_cached_imgelem_flg=1;}
if(owa_cached_imgelem_flg==1&&owa_cached_imgelem!=undefined)
{return owa_cached_imgelem;}
if(httprpinresp.search(/icon-msg-read.gif/)!=-1)
{owa_cached_imgelem_flg2=1;}
if(owa_cached_imgelem_flg2==1&&owa_cached_imgelem2!=undefined)
{return owa_cached_imgelem2;}}
var httprp_regex_matches=sw_httprp_tag_regex_obj.exec(httprpinresp);RegExp.multiline=initHttprpRegexMultiline;var htmlTagName=httprp_regex_matches[HTTPRP_TAGNAME_MATCH_INDEX];var htmlEndTagMarker=httprp_regex_matches[HTTPRP_ENDTAG_MATCH_INDEX];var attrListBuf=new String(httprp_regex_matches[HTTPRP_ATTRLIST_MATCH_INDEX]);var rewriteAttrListBuf=new String(attrListBuf);var attrList_so=0;httprpoutresp=httprpinresp.substring(0,httprpinresp.indexOf(htmlTagName));httprpoutresp+=sw_httprp_str_trim(htmlTagName)+" ";while((httprp_regex_matches=sw_httprp_tag_attr_regex_obj.exec(rewriteAttrListBuf))!=null)
{var htmlTagAttrName=undefined,attrValueStr,quotStr=0,attrStr;var attrValue_so=0,attrValue_eo=0,attrFound=-1;var rewriteFlg=false;attrStr=httprp_regex_matches[HTTPRP_ATTRSTR_MATCH_INDEX];htmlTagAttrName=httprp_regex_matches[HTTPRP_ATTRNAME_MATCH_INDEX];if(attrList_so!=0)
{if(attrListBuf.substring(attrList_so-1,attrListBuf.indexOf(htmlTagAttrName,attrList_so))==" ")
httprpoutresp+=attrListBuf.substring(attrList_so-1,attrListBuf.indexOf(htmlTagAttrName,attrList_so));else
httprpoutresp+=attrListBuf.substring(attrList_so,attrListBuf.indexOf(htmlTagAttrName,attrList_so));}
if((httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX]!="")&&(httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX]!=undefined))
{httprpoutresp+=htmlTagAttrName;httprpoutresp+=httprp_regex_matches[HTTPRP_EQUALS_MATCH_INDEX];attrValueStr=httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX];if((httprp_regex_matches[HTTPRP_DQUOT_MATCH_INDEX]!="")&&(httprp_regex_matches[HTTPRP_DQUOT_MATCH_INDEX]!=undefined))
{quotStr='"';}
else if((httprp_regex_matches[HTTPRP_SQUOT_MATCH_INDEX]!="")&&(httprp_regex_matches[HTTPRP_SQUOT_MATCH_INDEX]!=undefined))
{quotStr='\'';}
if(quotStr!=0)
{httprpoutresp+=quotStr;attrValueStr=httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX];attrValueStr=attrValueStr.substring(1,attrValueStr.length-1)}
attrFound=bsrch(sw_httprp_tag_attr_array,htmlTagAttrName.toLowerCase(),0,sw_httprp_tag_attr_array.length-1);if(attrFound>=0)
{rewriteFlg=true;if((sw_httprp_tag_attr_array[attrFound]=="codebase"||sw_httprp_tag_attr_array[attrFound]=="value")&&(attrValueStr=="."||attrValueStr=="./"||(sw_httprp_cgi_path==sw_httprp_apache_path_normal?attrValueStr.match("^/"+sw_httprp_cgi_path+"https?:/"):false)||attrValueStr.match("^https://"+location.host)))
{rewriteFlg=false;}
else
{httprpoutresp+=sw_httprp_rewrite_url(attrValueStr);}}
if(!rewriteFlg)
{var attrFound=bsrch(sw_httprp_js_event_handler_array,htmlTagAttrName.toLowerCase(),0,sw_httprp_js_event_handler_array.length-1);if(attrFound>=0)
{rewriteFlg=true;}
if(rewriteFlg)
{httprpoutresp+=attrValueStr;}
else
{httprpoutresp+=attrValueStr;}}
if(quotStr!=0)
{httprpoutresp+=quotStr;}}
else
{httprpoutresp+=htmlTagAttrName;if((httprp_regex_matches[HTTPRP_ATTRSPACE_MATCH_INDEX]!=undefined)&&(httprp_regex_matches[HTTPRP_ATTRSPACE_MATCH_INDEX]!=""))
{httprpoutresp+=httprp_regex_matches[HTTPRP_ATTRSPACE_MATCH_INDEX];}}
attrValue_eo=attrListBuf.indexOf(attrStr,attrValue_so)+attrStr.length;attrValue_so=attrValue_eo;if(attrValue_so<=attrList_so)
{attrList_so+=attrStr.length;rewriteAttrListBuf=attrListBuf.substring(attrList_so);}
else
{attrList_so=attrValue_so;rewriteAttrListBuf=attrListBuf.substring(attrValue_so);}}
httprpoutresp+=htmlEndTagMarker;if(htmlTagName.toUpperCase().replace(/ /g,'')==='HTML'){httprpoutresp+=sw_httprp_insert_rewrite_lib();}
if(owa_cached_imgelem_flg==1)
owa_cached_imgelem=httprpoutresp;else if(owa_cached_imgelem_flg2==1)
owa_cached_imgelem2=httprpoutresp;return httprpoutresp;}
function sw_httprp_rewrite_location_pathname(path)
{var begPos=sw_httprp_base.indexOf('/');var endPos=sw_httprp_base.length;var sw_base_path=sw_httprp_base.substr(begPos,endPos);var sw_full_path=sw_base_path+sw_httprp_orig_proto+"://"+sw_httprp_orig_host+path;return sw_full_path;}
function sw_httprp_inject_csrf_token(url)
{var SW_TOKEN_ID="__swl";var httpFlg;var httpsFlg;var qspos=0;if(typeof csrfFlg==="undefined"||csrfFlg==0)
{return url;}
if((url.search(/(\/|\?|\.)/)<0))
{return url;}
if((httpsFlg=!(url.search(sw_httprp_https_head)))||(httpFlg=!(url.search(sw_httprp_http_head))))
{var proto_len=((httpFlg==1)?sw_httprp_http_head.length:sw_httprp_https_head.length);if(sw_httprp_cgi_path==undefined&&sw_httprp_apache_flg==1)
{if((url.substring(proto_len)).indexOf(sw_httprp_orig_host)!=0)
{return url;}}}
if((qspos=url.indexOf('?'))<0)
{url+='?';}
else
{var tmp="[?&]"+SW_TOKEN_ID;if(((url.substring(qspos)).search(tmp))>=0)
{return url;}
url+='&'}
url+=((csrfToken==undefined)?"":csrfToken);return url;}
function sw_httprp_elementInsert(child)
{var newURL="";if(child.nodeType&&child.nodeType===1&&child.tagName)
{if(child['src'])
{newURL=sw_httprp_rewrite_url(child['src']);if(child['src']!==newURL)
{child['src']=newURL;}}
if(child.style&&child.style['backgroundImage'])
{var urlRegExp=new RegExp('url\\((.+)\\)','i');var result;if((result=urlRegExp.exec(child.style['backgroundImage'])))
{if(result[1])
{newURL='url('+sw_httprp_rewrite_url(result[1])+')';if(child.style['backgroundImage']!==newURL)
{child.style['backgroundImage']=newURL;}}}}
if(child.nodeName&&child.nodeName.toLowerCase()==='style'){try{child.innerHTML=child.innerHTML.replace(/(@font\-face\s*)\{([^}]+)\}/gi,function(all,fontFace,attributes){var newAttributes;newAttributes=(' '+attributes).replace(/(\W+src\s*:\s*url)\((['"]{0,1})([^'")]+)\2\)/i,function(all,pre,sep,url){return pre+"("+sep+sw_httprp_rewrite_url(url)+sep+")";});return fontFace+'{'+newAttributes+'}';});}catch(e){}}}
return child;}
function sw_httprp_mozBinding_rewrite(urlStr)
{var urlRegExp=/url\((["']{0,1})([^"'\)]+)(["']{0,1})\)/i;var result,newURL;result=urlRegExp.exec(urlStr);if(result)
{if(result[2])
{newURL=sw_httprp_rewrite_url(result[2]);if(newURL!==result[2])
{return'url('+result[1]+newURL+result[1]+')';}}}
return urlStr;}
function sw_httprp_rewrite_url(urlStr)
{if(urlStr==undefined||urlStr.length<=0||(typeof(urlStr)).indexOf("string")<0)
{return urlStr;}
var urlStrLowerCase=urlStr.toLowerCase();if(sw_httprp_str_trim(urlStrLowerCase).match("^javascript:"))
{return urlStr;}
if(urlStrLowerCase.indexOf(sw_httprp_http_head_encode)==0||urlStrLowerCase.indexOf(sw_httprp_https_head_encode)==0){urlStr=decodeURIComponent(urlStr);urlStrLowerCase=decodeURIComponent(urlStrLowerCase);}
urlStr=sw_httprp_inject_csrf_token(urlStr);if(sw_httprp_cgi_path==undefined&&sw_httprp_apache_flg==1)
{if(urlStrLowerCase.match(sw_httprp_proto_regex_obj))
{if(offloadRewrite==1)
{var urlPart='';var urlHost='';var urlPort=0;if(urlStrLowerCase.match(sw_httprp_proto_http_regex_obj))
{urlPart=(urlStr.substring(HTTP_PROTO_STR_LEN));}
else if(urlStrLowerCase.match(sw_httprp_proto_https_regex_obj))
{urlPart=(urlStr.substring(HTTPS_PROTO_STR_LEN));}
var i=0;for(i=0;i0)
{cmpPos=cmpPos-sw_httprp_cgi_path.length;if(cmpPos==0)
{cmpstring=urlstr.substring(0,substringPos);if(cmpstring==sw_httprp_cgi_path)
{return endpos;}
else
{return 0;}}
else if(cmpPosb))
min=b;if((c!=undefined)&&(min>c))
min=c;return min;}
function sw_httprp_rewrite_uba_url(urlStr)
{if(urlStr.charAt(0)=='/')
{var alias=ubaAlias;var aliasNameLen=alias.length;if((aliasNameLen<=urlStr.length)&&(alias==urlStr.substring(0,aliasNameLen)))
return urlStr;else
return alias+sw_httprp_strip_uba_path(urlStr);}
else
return urlStr;}
function sw_httprp_strip_uba_path(urlPart)
{if(ubaPath.charAt(0)!='\0')
{var pathLen=ubaPath.length;var urlLen=urlPart.length;if(ubaPath==urlPart.substring(0,pathLen))
return urlPart.substring(pathLen,urlLen);}
return urlPart;}
function sw_httprp_set_location_href(urlStr)
{var matches;var request_regex=new RegExp(sw_httprp_request_regex,"i");var orig_path=undefined;if(!request_regex.test(urlStr))
return false;matches=request_regex.exec(urlStr);for(var i=0;i<=matches.length;++i)
sw_httprp_log("matches["+i+"] = "+matches[i],SW_HTTPRP_LOG_LEVEL_DEBUG);sw_httprp_base=matches[HTTPRP_BASE_MATCH_INDEX];sw_httprp_orig_proto=matches[HTTPRP_ORIG_PROTO_MATCH_INDEX];sw_httprp_orig_proto_prefix=sw_httprp_orig_proto+':';sw_httprp_orig_host=matches[HTTPRP_ORIG_HOST_MATCH_INDEX];if(sw_httprp_orig_host.match(/^%5B[:0-9a-f]+%5D$/i))
{sw_httprp_orig_host=sw_httprp_orig_host.replace('%5B','[').replace('%5D',']');}
if(sw_httprp_orig_proto=="")
sw_httprp_is_portal_flg=1;orig_path=matches[HTTPRP_ORIG_PATH_MATCH_INDEX].substring(0,matches[HTTPRP_ORIG_PATH_MATCH_INDEX].lastIndexOf('/')+1);if(orig_path==undefined||orig_path.length==0)
sw_httprp_orig_path='/';else
sw_httprp_orig_path=orig_path;sw_httprp_orig_doc=matches[HTTPRP_ORIG_PATH_MATCH_INDEX].substring(matches[HTTPRP_ORIG_PATH_MATCH_INDEX].lastIndexOf('/')+1);sw_httprp_orig_pathname=sw_httprp_orig_path+sw_httprp_orig_doc;sw_httprp_location_href=urlStr;if(!urlStr.match(new RegExp("/$")))
sw_httprp_location_href+='/';sw_httprp_host_url="https://"+sw_httprp_base;if(!sw_httprp_is_portal_flg)sw_httprp_host_url+=sw_httprp_orig_proto+"://"+sw_httprp_orig_host;sw_httprp_base_ref="https://"+sw_httprp_base;if(!sw_httprp_is_portal_flg)
sw_httprp_orig_href=sw_httprp_orig_proto+"://"+sw_httprp_orig_host+sw_httprp_orig_pathname;else
sw_httprp_orig_href=sw_httprp_orig_pathname;sw_httprp_base_ref_regex_obj=new RegExp("^"+sw_httprp_base_ref.toLowerCase());}
function sw_httprp_resolve_rel_parent_ref(urlStr)
{return sw_httprp_resolve_parent_ref(urlStr,0);}
function sw_httprp_resolve_abs_parent_ref(urlStr)
{var matches=sw_httprp_abs_url_regex_obj.exec(urlStr);if(matches!=null&&matches.length>0)
{if(matches[1]==undefined&&matches[2]==undefined)
return urlStr;else if(matches[1]==undefined)
return sw_httprp_resolve_rel_parent_ref(matches[2]);else if(matches[2]==undefined)
{if(sw_httprp_is_portal_flg)
return"";else
return matches[1];}
else
{if(sw_httprp_is_portal_flg)
return sw_httprp_resolve_rel_parent_ref(matches[2]);else
return matches[1]+sw_httprp_resolve_rel_parent_ref(matches[2]);}}
else
{return sw_httprp_resolve_parent_ref(urlStr);}}
function sw_httprp_resolve_parent_ref(httprpinresp,depth){var path=sw_httprp_stripQS(httprpinresp);var qsIndex=sw_httprp_getQSIndex(httprpinresp);var qs=(qsIndex>=0)?httprpinresp.substring(qsIndex,httprpinresp.length):null;var dirent_names=path.split('/');var httprpoutresp="";var i=0;if(depth==undefined)
{depth=sw_httprp_get_depth(sw_httprp_orig_path);}
if(httprpinresp==undefined||sw_httprp_str_trim(httprpinresp).length==0)
{return httprpinresp;}
if(httprpinresp.charAt(0)=='/')
{httprpoutresp+="/";}
for(i=0;i0)
{--depth;httprpoutresp+=dirent_names[i];if(i<(dirent_names.length-1))
{httprpoutresp+="/";}}
else if(httprpoutresp.length==0)
{continue;}}}
if(qs!=null)
{httprpoutresp+=qs;}
return httprpoutresp;}
function sw_httprp_get_depth(pathStr)
{var path=sw_httprp_stripQS(pathStr);var dirent_names;var depth=0,i=0;if(path==undefined)
return 0;dirent_names=path.split('/');for(i=0;i0)
{--depth;}}
else if(dirent_names[i]==".")
{continue;}
else if(dirent_names[i]!="")
{++depth;}}
return depth;}
function sw_httprp_str_trim(str)
{if(str==undefined)
return undefined;return str.replace(/^\s*(\S|\S.*\S)\s*$/,"$1");}
function sw_httprp_stripMetaChars(str)
{var i=0,c='';var noMetaCharsStr=new String();while(i=0)
path=pathStr.substring(0,qsIndex);else
path=pathStr;return path;}
function sw_httprp_getQSIndex(pathStr)
{return pathStr.indexOf('?');}
function sw_httprp_rewrite_documentDotWrite(body)
{var docHtmlStream='';sw_documentDotWriteBuffer+=body;var url=location.href;if(sw_httprp_owa_flg)
{var cur=new String(body);var cur_index=0;while(1)
{var tag;cur_index=cur.search('>');if(cur_index<0)
break;tag=cur.substring(0,cur_index+1);docHtmlStream+=sw_httprp_rewrite_document(tag);cur=cur.substring(cur_index+1,cur.length);}
if(cur.length>0)
docHtmlStream+=sw_httprp_rewrite_document(cur);}
else
if(sw_httprp_basictag_regex_obj.test(sw_documentDotWriteBuffer))
{docHtmlStream=sw_httprp_rewrite_document(sw_documentDotWriteBuffer);sw_documentDotWriteBuffer='';}
else if(sw_documentDotWriteBuffer==body)
{var cur=new String(body);var cur_index=0;cur_index=cur.search('<|>');if(cur_index<0)
{sw_documentDotWriteBuffer='';return body;}}
return docHtmlStream;}
function sw_httprp_rewrite_innerOrOuterHTML(body)
{body=stripOffOwnTags(body);sw_documentDotWriteBuffer='';return sw_httprp_rewrite_documentDotWrite(body);function stripOffSafeCheck(body)
{var ownDefined='\\bsw_httprp_.+';var regex=new RegExp(ownDefined);var isSafe=true;if(regex.exec(body))
{isSafe=false;}
return isSafe;}
function stripOffOwnTags(body)
{var jsFileFullAddress=sw_httprp_base_ref?sw_httprp_base_ref:'/';jsFileFullAddress+='sw_httprp.js';jsFileFullAddress+='.*?';var ownTagsRegexStr='\\n';var ownTagsRegex=new RegExp(ownTagsRegexStr,'i');var matchs=ownTagsRegex.exec(body);var stripedBody='';if(matchs)
{stripedBody=body.replace(matchs[0],'');if(stripOffSafeCheck(stripedBody))
{return stripedBody;}}
return body;}}
function sw_httprp_rewrite_documentDotWriteln(body)
{var docHtmlStream='';docHtmlStream=sw_httprp_rewrite_documentDotWrite(body);if(docHtmlStream=='')sw_documentDotWriteBuffer+='\n';return docHtmlStream;}
function bsrch(list,item,left,right)
{var mid;while(left<=right)
{mid=Math.floor((right-left)/2)+left;if(item>list[mid])
left=mid+1;else if(item0)&&(maxloops>0))
{for(i=0;i=0)
{if(domainPortStr.indexOf('[')==-1||domainPortStr.indexOf(']')==-1)
{domainPortArray.push(domainPortStr.substring(0,portDelim));domainPortArray.push(domainPortStr.substring(portDelim+1));}
else
{if(portDelim>domainPortStr.indexOf(']'))
{domainPortArray.push(domainPortStr.substring(0,portDelim));domainPortArray.push(domainPortStr.substring(portDelim+1));}
else
{domainPortArray.push(domainPortStr);}}}
else
{domainPortArray.push(domainPortStr);}
return domainPortArray;}
function sw_httprp_is_default_port(portStr,schemeStr)
{if((portStr==="80"&&schemeStr.toLowerCase()==="http")||(portStr==="443"&&schemeStr.toLowerCase()==="https")){return true;}else{return false;}}
function sw_httprp_make_cookie(cookieStr)
{var domainPortArray=sw_httprp_get_domain_port(sw_httprp_orig_host);var modCookieStr=undefined;var cookieNoSp=cookieStr.replace(/\s/,"");var pathPos,pathEndPos;var securePos;modCookieStr="__proxy_ssl_vpn__COOKIE__"+domainPortArray[0]+"__";if(domainPortArray[1]!==undefined&&!sw_httprp_is_default_port(domainPortArray[1],sw_httprp_orig_proto))
{modCookieStr+=domainPortArray[1]+"__";}
pathPos=cookieNoSp.indexOf("path=");if(pathPos!==-1&&cookieNoSp.charAt(pathPos-1)===';')
{pathEndPos=cookieNoSp.indexOf(';',pathPos);modCookieStr+=cookieNoSp.slice(0,pathPos);modCookieStr+="path=/";if(pathEndPos!==-1)
{modCookieStr+=cookieNoSp.slice(pathEndPos);}}else
{modCookieStr+=cookieStr;modCookieStr+=";path=/";}
securePos=cookieNoSp.indexOf("secure");if(securePos===-1||cookieNoSp.charAt(securePos-1)!==';')
{modCookieStr+=";secure";}
return modCookieStr;}
function sw_httprp_rewrite_uba_cookie(cookieStr)
{var modCookieStr=undefined;var cookieNoSp=cookieStr.replace(/\s/,"");var pathPos=cookieNoSp.indexOf(";path=/");if(pathPos!==-1)
{var alias=ubaAlias;modCookieStr+=cookieNoSp.slice(0,pathPos);modCookieStr+=";path=";modCookieStr+=alias;modCookieStr+=sw_httprp_strip_uba_path(cookieNoSp.slice(pathPos+6));}
return modCookieStr;}
function sw_httprp_sign_cookie(cookieStr)
{var modCookieStr;var hostStr=sw_httprp_orig_host;if(typeof cookieStr!=="string")return cookieStr;if(hostStr=='')
{if(sw_httprp_is_portal_flg)
hostStr=window.location.host;else
{sw_httprp_document_cookie+=cookieStr+";";return cookieStr;}}
if(typeof(ubaEnabled)!=="undefined"&&ubaEnabled)
modCookieStr=sw_httprp_rewrite_uba_cookie(cookieStr);else
modCookieStr=sw_httprp_make_cookie(cookieStr);if(document!=undefined)
{try{window.document.cookie=modCookieStr;sw_httprp_document_cookie=sw_httprp_add_cookie(sw_httprp_document_cookie,cookieStr);}catch(e){}}
return cookieStr;}
function sw_httprp_get_unsigned_cookies(cookieDictionary)
{var unsignedCookieList="";var document_cookies="";var SCDOMAIN_CONSTANT_LEN=8;var SCDOMAIN_CONSTANT_STR="SCDOMAIN";var DOMAIN_REGEX_INDEX=1;var PORT_REGEX_INDEX=3;var cookieList;var i;var domainPortArray=sw_httprp_get_domain_port(sw_httprp_orig_host);var dotIndexInDomain=domainPortArray[0].indexOf('.');try{document_cookies=cookieDictionary;}catch(e){return unsignedCookieList;}
cookieList=document_cookies.split(";");for(var i=0;i